

// Проверка влияния отраженных   сигналов
//_______________________________Параметры помех

clear
clc
stacksize('max');
exec('std.sci');
exec('rem.sci');

EA=[0,40;0,100;0, 120;0,30; 0,20;0, 50;0,-60;0,150;0,0;0,-120;10,150;-10,175;0,-30;45,30;45,-30;0,170];

k1=[1:1];
//  k1=2;
EA=EA(k1,:);

//Е0 – вектор заданных значений относительного превышения уровней помех над собственными шумами.
e0=1; // уровень сигнала на выходе приёмника  
// k2=[8,6,6,7,7,8,6,6,7,7,8,6];
// k2=[3*ones(1,6),11*ones(1,6)]; 
k2=k1;
// k2=[7,11*ones(1,11)]; 
if length (k2)~=length(k1),
    error('length (k2) должен быть равен  length(k1)');
end;
E0=[400,600,500,500,80,50,60,500,100,100,0,0,0,0,0,0];//0.05,
// E0=[1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0];//0.05,
// E0=[0,5,25,50,60,80,100,250,400,0];
E0=E0(k2); 
normE0=norm(E0);
E0=E0.*exp(%i*%pi/4); 


k3=k1;
if length (k3)~=length(k1),
    error('length (k3) должен быть равен  length(k1)');
end;
f0=[21,1,3,5,7,9,10,11,13,14,15,16,17,18,19,20]*1e6;// вектор несущих частот
f0=f0(k3);
B=[10,3,15,0,10,9,10,12,13,15,16,18,20,0,0,0]*1e6;// вектор ширины спекра помех

k4=k1;
if length (k4)~=length(k1),
    error('length (k4) должен быть равен  length(k1)');
end;
B=B(k4);
//_______________________________Параметры помех -- конец

//_________________________ параметры многолучевости

Kmp=[0.125,0.13,0.15,0.2,0.2,0,15,0.3]*2;
// Kmp=0.15*rand(1,8);
EAmp=[0,-130;0,-30;0,170;30,-10;5,120;-20,31;0,75;-30,-90]; 
// Dmp=8*rand(1,8);
Dmp=[2,8,3,5,2.5,4,10,3];
ha=3;
N_mp=0;


//_______________________________параметры многолучевости-- конец



Na = 6;                   // Число периферийных антенн
lambda=0.187; 
td=1/2150e6;   fd=1/td;    // период тактования 
nu=2^18;                           // длина реализации случайного процесса, из которой выбирается фрагмент диной Nu
Nu=50000;                  // Число выборок в случайной реализации при моделировании

//______________Это вариант для работы с Na=3. Для моделирования его НАДО ПРОСТО разблокировать 
// Na=3;
// nn=3;               // nn=3...5 - число помех
// B=B(1:nn);
// f0=f0(1:nn);
// E0=E0(1:nn);
// EA=EA(1:nn,:);
// 
EG=zeros(1,Nu);
ZG=zeros(Na,Nu);
ph=zeros(1,length(E0));
//EG0 и ZG0 – соответственно модели сигналов центральной атенны и вектора сигналов периферийных антенн.
exec('preparationMP.sci');
[EG0,ZG0]=preparationMP(Na,E0,ph,EA,lambda,nu,f0,B,td,Kmp, EAmp, N_mp,Dmp,ha);
   
exec('circshift.sci');
EG=circshift(EG0',50)'; //86 МГц
ZG0(3,:)=circshift(ZG0(3,:)',20)';
ZG0(2,:)=circshift(ZG0(2,:)',-20)';
//  ZG0=circshift(ZG0',-25)';  //Na=1

   
ZG1=ZG0;
ZG2=circshift(ZG0',50)';
ZG3=circshift(ZG0',100)';
ZG4=circshift(ZG0',150)';
ZG5=circshift(ZG0',200)';
//pause
// ZG6=circshift(ZG0',250,0)';
//__________________________________________________________________________
exec('form_int_1.sci');
[v,i1]=form_int_1(Nu,nu); // изъятие Nu выборок из реализации, состоящей из  nu выборок, получение статистически независимых реализаций из Nu
v=v(1:50:$);
EG_=EG([v]);
Z1=ZG1(:,[v]);//*exp(%i*%pi/6);                  
Z2=ZG2(:,[v]);//*exp(-%i*%pi/6);    
Z3=ZG3(:,[v]);//*exp(%i*%pi/3);
Z4=ZG4(:,[v]);//*exp(-%i*%pi/2);   
Z5=ZG5(:,[v]);//*exp(%i*%pi/4);  


// Z6=ZG6(:,[v]);// Здесь оканчивается модель сигналов помех. 
// Здесь оканчивается модель сигналов помех. 
//======================================================================

Er=real(EG_);      // квадратурные компоненты    центральной антенны
Eim=imag(EG_);

Z1r= real(Z1);      //*0.9;        //  квадратурные компоненты периферийных антенн
Z1im=imag(Z1);        
Z1=[Z1r;Z1im];     // формирование матрицы квадратурных компонент периферийных антенн

Z2r= real(Z2);        //  квадратурные компоненты периферийных антенн
Z2im=imag(Z2);   //    *1.1;        
Z2=[Z2r;Z2im];     // 

Z3r= real(Z3);       //*0.8;        //  квадратурные компоненты периферийных антенн
Z3im=imag(Z3);        
Z3=[Z3r;Z3im];      

Z4r= real(Z4);        //  квадратурные компоненты периферийных антенн
Z4im=imag(Z4);        
Z4=[Z4r;Z4im];    

Z5r= real(Z5);        //  квадратурные компоненты периферийных антенн
Z5im=imag(Z5);        
Z5=[Z5r;Z5im];    

// Z6r= real(Z6);        //  квадратурные компоненты периферийных антенн
// Z6im=imag(Z6);        
// Z6=[Z6r;Z6im];    

// МОДЕЛЬ АЛГОРИТМА
Za=[Z1];//;Z2;Z3;Z4;Z5];

// Za=[Z1;Z2;Z3;Z4;Z5;Z6];
//  Za=[Z2;Z3;Z5];
// Za=[Z2];

MZRa=Za*Za';     
ZEar=Za*Er';        
ZEaim=Za*Eim';      
invMZRa=inv(MZRa); 
Xa=invMZRa*ZEar;      // вычисление весовых коэффициентов в вычислителе для действительной компоненты сигнала центральной антенны  
// Xa_=invMZRa*ZEaim; //  вычисление весовых коэффициентов в вычислителе для мнимой компоненты сигнала центральной антенны  
Eadc1=Er-Xa'*Za;           
// Eadc2=Eim-Xa_'*Za;
//____________________________  КОНЕЦ  МОДЕЛИ АЛГОРИТМА

stdEadc1=std(Eadc1);   // stdEadc2=stdev(Eadc2); 
stdE1=std(Er);  // stdE2=stdev(Eim);
E1_Eadc1_dB=20*log10(std(Er)/std(Eadc1));
//E2_Eadc2_dB=20*log10(stdev(Eim)/stdev(Eadc2));

  a=1;
      
     
